[READ-ONLY] Mirror of https://github.com/flo-bit/skywatched. review movies and tv shows, based on at proto
skywatched.app
4.2 kB
174 lines
1import { getRecentRecordsForItem } from '$lib/db.js';
2import {
3 getCast,
4 getDetails,
5 getRecommendations,
6 getTrailer,
7 getWatchProviders,
8 getPersonDetails,
9 getCombinedCredits
10} from '$lib/server/movies';
11import { error, redirect } from '@sveltejs/kit';
12
13/** @type {import('./$types').PageServerLoad} */
14export async function load(event) {
15 const id = parseInt(event.params.id.split('-')[0]);
16 const id2 = parseInt(event.params.id2.split('-')[0]);
17 const kind = event.params.kind;
18 const kind2 = event.params.kind2;
19 const ids = id;
20 const ids2 = id2;
21 const couter = event.params.counter;
22 if (kind == kind2 && id == id2) {
23 redirect(302, '/win/' + couter);
24 }
25
26 if (kind !== 'movie' && kind !== 'tv' && kind !== 'cast') {
27 return error(404, 'Not found');
28 }
29 if (kind2 !== 'movie' && kind2 !== 'tv' && kind2 !== 'cast') {
30 return error(404, 'Not found');
31 }
32
33 if (!id) {
34 return error(404, 'Not found');
35 }
36 if (!id2) {
37 return error(404, 'Not found');
38 }
39 var temp;
40 var temp2;
41 var casting;
42 var casting2;
43 var person;
44 var person2;
45 var credits;
46 var credits2;
47 if (kind === 'cast') {
48 temp = getDetails(68730, 'movie');
49 casting = getCast(68730, 'movie');
50 person = getPersonDetails(id);
51 person2 = getPersonDetails(id2);
52 credits = id;
53 credits2 = id2;
54 } else {
55 temp = getDetails(id, kind);
56 casting = getCast(id, kind);
57 person = getPersonDetails(37625);
58 person2 = getPersonDetails(37625);
59 credits = 37625;
60 credits2 = 37625;
61 }
62 if (kind2 === 'cast') {
63 temp2 = getDetails(68730, 'movie');
64 casting2 = getCast(68730, 'movie');
65 person2 = getPersonDetails(id2);
66 credits2 = id2;
67 } else {
68 temp2 = getDetails(id2, kind2);
69 casting2 = getCast(id2, kind2);
70 person2 = getPersonDetails(37625);
71 credits2 = 37625;
72 }
73 const resultPromise = temp;
74 const personPromise = person;
75 const person2Promise = person2;
76 //if(kind==="cast"){
77 // const resultPromise = getDetails(68730,"movie")
78 //}
79 //else{
80 // const resultPromise = getDetails(id, kind);
81 //}
82 const resultPromise2 = temp2;
83
84 const castPromise = casting;
85 const castPromise2 = casting2;
86 const creditsPromise = credits;
87 const creditsPromise2 = credits2;
88 const combinedCredits = await getCombinedCredits(credits);
89 const creditsSet = new Set<string>();
90 const combinedCredits2 = await getCombinedCredits(credits2);
91 const creditsSet2 = new Set<string>();
92 combinedCredits.cast = combinedCredits.cast
93 .filter((item: { id: string; poster_path: string }) => {
94 if (creditsSet.has(item.id)) {
95 return false;
96 }
97 creditsSet.add(item.id);
98 return item.poster_path;
99 })
100 .sort((a: { order: number }, b: { order: number }) => b.order - a.order)
101 .map((item: { id: string; media_type: string }) => {
102 return {
103 ...item,
104 movieId: item.media_type === 'movie' ? item.id : undefined,
105 showId: item.media_type === 'tv' ? item.id : undefined
106 };
107 });
108 combinedCredits2.cast = combinedCredits2.cast
109 .filter((item: { id: string; poster_path: string }) => {
110 if (creditsSet2.has(item.id)) {
111 return false;
112 }
113 creditsSet2.add(item.id);
114 return item.poster_path;
115 })
116 .sort((a: { order: number }, b: { order: number }) => b.order - a.order)
117 .map((item: { id: string; media_type: string }) => {
118 return {
119 ...item,
120 movieId: item.media_type === 'movie' ? item.id : undefined,
121 showId: item.media_type === 'tv' ? item.id : undefined
122 };
123 });
124
125 const [
126 result,
127 result2,
128 cast,
129 cast2,
130 personDetails,
131 person2Details,
132 creditDetails,
133 creditDetails2
134 ] = await Promise.all([
135 resultPromise,
136 resultPromise2,
137 castPromise,
138 castPromise2,
139 personPromise,
140 person2Promise,
141 creditsPromise,
142 creditsPromise2
143 ]);
144
145 if (!result || result.success === false) {
146 return error(404, 'Not found');
147 }
148
149 return {
150 result: {
151 ...result,
152 movieId: kind === 'movie' ? id : undefined,
153 showId: kind === 'tv' ? id : undefined
154 },
155 result2: {
156 ...result2,
157 movieId: kind2 === 'movie' ? id2 : undefined,
158 showId: kind2 === 'tv' ? id2 : undefined
159 },
160 kind,
161 kind2,
162 cast,
163 cast2,
164 couter,
165 personDetails,
166 person2Details,
167 creditDetails,
168 creditDetails2,
169 ids,
170 ids2,
171 combinedCredits: combinedCredits.cast,
172 combinedCredits2: combinedCredits2.cast
173 };
174}